﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

using IEQ_Superintendencia.Domain.Entity;
using IEQ_Superintendencia.Domain.Control;

namespace IEQ_Superintendencia.User_Interface
{
    public partial class UICadPastor : UserControl
    {
        UICadIgrejaPast objIgrejasPastoreadas = new UICadIgrejaPast();

        public UICadPastor()
        {
            InitializeComponent();

            plnPrincipal.Anchor = AnchorStyles.None;

            preencheCbPastorIgreja();
            preencheCbPastorCategoria();

            tspCadastroPastor.Visible = true;
            tabIgrejasPastoreadas.CreateControl();
            objIgrejasPastoreadas.Enabled = false;
            tabIgrejasPastoreadas.Controls.Add(objIgrejasPastoreadas);               
        }

        protected void preencheCbPastorCategoria()
        {
            IEQ_Superintendencia.Services.Persistence.dsIEQSuper.PASTOR_CATEGORIADataTable dtPastorCategoria = new IEQ_Superintendencia.Services.Persistence.dsIEQSuper.PASTOR_CATEGORIADataTable();
            IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.PASTOR_CATEGORIATableAdapter dsPastorCategoria = new IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.PASTOR_CATEGORIATableAdapter();

            dtPastorCategoria = dsPastorCategoria.GetData();
            cbPastorCategoria.DataSource = dtPastorCategoria;
            cbPastorCategoria.DisplayMember = "PASTOR_CATEGORIA_DESCRICAO";
            cbPastorCategoria.ValueMember = "PASTOR_CATEGORIA_ID";
        }

        protected void preencheCbPastorIgreja()
        {
            IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJADataTable dtIgreja = new IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJADataTable();
            IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJATableAdapter dsIgreja = new IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJATableAdapter();

            dtIgreja = dsIgreja.GetData();
            cbPastorIgreja.DataSource = dtIgreja;
            cbPastorIgreja.DisplayMember = "IGREJA_NOME";
            cbPastorIgreja.ValueMember = "IGREJA_ID";
        }

        protected void FactoryPastor(ref Pastor _pa)
        {
            _pa.pessoa_bairro = tbBairro.Text;
            _pa.pessoa_celular = mtbTelCelular.Text;
            _pa.pessoa_cep = mtbCEP.Text;
            _pa.pessoa_cidade = tbCidade.Text;
            _pa.pessoa_complemento = tbComplemento.Text;
            _pa.pessoa_cpf = mtbCPF.Text;
            _pa.pessoa_email = tbEmail.Text;
            _pa.pessoa_endereco = tbEndereco.Text;
            _pa.pessoa_endereco_num = tbNumero.Text;
            _pa.pessoa_estado_civil = tbEstadoCivil.Text;
            _pa.pessoa_naturalidade = tbNaturalidade.Text;
            _pa.pessoa_nome = tbNome.Text;
            _pa.pessoa_rg = mtbIdentidade.Text;
            _pa.pessoa_secao = tbSecao.Text;
            _pa.pessoa_telefone_recado = mtbTelRecado.Text;
            _pa.pessoa_telefone_residencia = mtbTelResidencia.Text;
            _pa.pessoa_telefone_servico = mtbTelServico.Text;
            _pa.pessoa_titulo_eleitor = tbTitEleitor.Text;
            _pa.pessoa_uf = cbUF.SelectedText;
            _pa.pessoa_zona = tbZona.Text;
            
            _pa.pessoa_data_nasc = DateTime.Parse(mtbDataNasc.Text);
            _pa.pastor_data_casamento = DateTime.Parse(mtbDtCasamento.Text);
            _pa.pastor_ingresso_ministerio = DateTime.Parse(mtbDtIngMinist.Text);
            _pa.pastor_categoria_id = Int32.Parse(cbPastorCategoria.SelectedValue.ToString());
            _pa.pastor_conjugue = tbConjugue.Text;
            _pa.pastor_observacao = tbObservacao.Text;
            _pa.pastor_prontuario = Int32.Parse(tbProntuario.Text);
            _pa.pastor_igreja_id = Int32.Parse(cbPastorIgreja.SelectedValue.ToString());

            //_pa.pessoa_foto = 

        }

        protected bool ValidaCadastroPastor()
        {
            #region Validando Datas
            DateTime dtValida = new DateTime();

            if (IEQUtils.ParseData(mtbDataNasc.Text, ref dtValida, "Data de nascimento"))
                mtbDataNasc.Text = dtValida.ToShortDateString();
            else
                return false;

            if (IEQUtils.ParseData(mtbDtCasamento.Text, ref dtValida, "Data de casamento"))
                mtbDtCasamento.Text = dtValida.ToShortDateString();
            else
                return false;

            if (IEQUtils.ParseData(mtbDtIngMinist.Text, ref dtValida, "Data de ingresso no ministério"))
                mtbDtIngMinist.Text = dtValida.ToShortDateString();
            else
                return false;

            #endregion

            #region Validando Inteiros

            int intValido;

            if (!Int32.TryParse(tbProntuario.Text, out intValido))
            {
                MessageBox.Show("Prontuário inválido");
                return false;
            }

            if (!Int32.TryParse(tbSecao.Text, out intValido))
            {
                MessageBox.Show("Secao inválida");
                return false;
            }

            if (!Int32.TryParse(tbZona.Text, out intValido))
            {
                MessageBox.Show("Zona eleitoral inválida");
                return false;
            }


            #endregion

            return true;
        }

        public void limpaCadastro()
        {
            tbBairro.Text = string.Empty;
            tbCidade.Text = string.Empty;
            tbComplemento.Text = string.Empty;
            tbConjugue.Text = string.Empty;
            tbEmail.Text = string.Empty;
            tbEndereco.Text = string.Empty;
            tbEstadoCivil.Text = string.Empty;
            tbNaturalidade.Text = string.Empty;
            tbNome.Text = string.Empty;
            tbNumero.Text = string.Empty;
            tbObservacao.Text = string.Empty;
            tbPastorID.Text = string.Empty;
            tbPesquisaNome.Text = string.Empty;
            tbProntuario.Text = string.Empty;
            tbSecao.Text = string.Empty;
            tbTitEleitor.Text = string.Empty;
            tbZona.Text = string.Empty;
            cbPastorCategoria.SelectedIndex = 0;
            cbPastorIgreja.SelectedIndex = 0;
        }

        private void tsbExcluir_Click(object sender, EventArgs e)
        {

        }

        private void tsbCancelar_Click(object sender, EventArgs e)
        {
            limpaCadastro();
        }

        private void tsbFechar_Click(object sender, EventArgs e)
        {
            
        }

        private void tsbPastorSalvar_Click(object sender, EventArgs e)
        {
            Pastor pa = new Pastor();

            if (ValidaCadastroPastor())
            {
                FactoryPastor(ref pa);

                int pastorID = 0;
                
                if (ControlPastor.Atualizar(pa, ref pastorID))
                {                 
                    MessageBox.Show("Cadastro realizado com sucesso!");                    
                    objIgrejasPastoreadas.cadIgrejaPast(pastorID, pa.pastor_igreja_id);
                    tabIgrejasPastoreadas.Show();
                    objIgrejasPastoreadas.Enabled = true;
                }

                else
                    MessageBox.Show("Existem campos obrigatórios não preenchidos");
            }
        }

        private void tsbIgPastSalvar_Click(object sender, EventArgs e)
        {
            IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJA_PASTOREADATableAdapter taIgPast = new IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJA_PASTOREADATableAdapter();
            IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJA_PASTOREADADataTable dtIgPast = new IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJA_PASTOREADADataTable();
            
        }

        private void tsbIgPastExcluir_Click(object sender, EventArgs e)
        {

        }

        private void tsbIgPastCancelar_Click(object sender, EventArgs e)
        {

        }

        private void tabIgrejasPastoreadas_Click(object sender, EventArgs e)
        {
            tbPesquisaNome.Enabled = false;
            tbPastorID.Enabled = false;
            btnNovo.Enabled = false;
            btnLocalizar.Enabled = false;
        }
        
        private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
        {
            
        }

        private void tsbPastorFechar_Click(object sender, EventArgs e)
        {
            this.Controls.Remove(this);
        }






    }
}
